<?php
/**
 * Celebrio FileSystem module
 *
 * @copyright  Copyright (c) 2011 Celebrio Software
 * @package    Celebrio
 * @subpackage FileSystem
 */
namespace Celebrio\FileSystem;

use Exception;
use InvalidStateException;
use RuntimeException;

/**
 * The exception is thrown when an I/O error occurs.
 */
class IOException extends RuntimeException {}

/**
 * The exception is thrown when an File error occurs.
 */
class FileException extends IOException {}

/**
 * The exception is thrown when we are trying to access a file which doesn't exist.
 */
class FileNotFoundException extends FileException {}

/**
 * The exception is thrown when an File error occurs.
 */
class FileNameCollisionException extends FileException {}


/**
 * The exception is thrown when an Folder error occurs.
 * @deprecated FileException family should be used
 */
class FolderException extends IOException {}


/**
 * The exception is thrown when we are trying to access a Folder which doesn't exist.
 * @deprecated FileException family should be used
 */
class FolderNotFoundException extends FolderException {}

/**
 * The exception is thrown when we are trying to choose unknown order for sorting.
 * @deprecated FileException family should be used
 */
class FolderUnknownOrder extends FolderException {}

/**
 * The exception is thrown when someone tries to access item without appropriate
 * access permissions.
 */
class AccessDeniedException extends IOException {}

/**
 * Invalid Filesystem operation
 */
class InvalidFilesystemOperation extends InvalidStateException {}


class InvalidVfsApiOperationException extends InvalidStateException {}
